import type { EntityDto, PagedAndSortedResultRequestDto } from '@abp/ng.core';
import type { Direction } from '../times/direction.enum';
import type { TimeStatus } from '../times/time-status.enum';

export interface FilterPagedRequestDto extends PagedAndSortedResultRequestDto {
  filter?: string;
}

export interface ListRequestByTimeInput extends PagedAndSortedResultRequestDto {
  timeId?: string;
}

export interface PersonCoreDto extends EntityDto<string> {
  personName?: string;
  idNumber?: string;
  sex?: string;
  personCode?: string;
  personType?: string;
}

export interface TimeCoreDto extends EntityDto<string> {
  signDate?: string;
  period?: string;
  direction: Direction;
  signTime?: string;
  signBegin?: string;
  signEnd?: string;
  timeStatus: TimeStatus;
}

export interface SignRecordDto extends EntityDto<string> {
  recordTime?: string;
  idNumber?: string;
  personName?: string;
  person: PersonCoreDto;
  time: TimeCoreDto;
}
